package com.tz.marlon.dao;

import java.util.HashMap;
import java.util.List;

import com.tz.marlon.bean.TzParams;

/**
 * 公共接口
 * IBaseDao<BR>
 * 作者:Marlon  <BR>
 * 时间:2016年11月13日-下午11:06:51 <BR>
 * 邮箱:18093454447@163.com  <BR>
 * @version 1.0.0  <BR>
 * @link see:  <BR>
 */
public interface IBaseDao<T> {

	/**
	 * 查询满足条件的记录（适用于单张表）
	 * 方法名：lists<BR>
	 * 时间：2016年11月13日-下午11:13:53 <BR>
	 * @param params
	 * @return List<T> 实体list<BR>
	 * @exception <BR>
	 * @since  1.0.0
	 */
	public List<T> lists(TzParams params);
	
	/**
	 * 根据主键id查询
	 * 方法名：listById<BR>
	 * 时间：2016年11月13日-下午11:14:04 <BR>
	 * @param id
	 * @return T<BR>
	 * @exception <BR>
	 * @since  1.0.0
	 */
	public T listById(Integer id);
	
	/**
	 * 查询满足条件的记录（适用于关联查询）
	 * 方法名：listMaps<BR>
	 * 时间：2016年11月13日-下午11:14:11 <BR>
	 * @param params
	 * @return List<HashMap<String,Object>><BR>
	 * @exception <BR>
	 * @since  1.0.0
	 */
	public List<HashMap<String, Object>> listMaps(TzParams params);
	
	/**
	 * 根据主键id查询（适用于关联查询）
	 * 方法名：mapById<BR>
	 * 创建人：Marlon <BR>
	 * 时间：2016年11月14日-上午10:16:26 <BR>
	 * @param id
	 * @return HashMap<String,Object><BR>
	 * @exception <BR>
	 * @since  1.0.0
	 */
	public HashMap<String, Object> mapById(Integer id);
	
	/**
	 * 更新记录
	 * 方法名：update<BR>
	 * 时间：2016年11月13日-下午11:14:18 <BR>
	 * @param params void<BR>
	 * @exception <BR>
	 * @since  1.0.0
	 */
	public void update(T t);
	
	/**
	 * 删除记录
	 * 方法名：delete<BR>
	 * 时间：2016年11月13日-下午11:14:25 <BR>
	 * @param id void<BR>
	 * @exception <BR>
	 * @since  1.0.0
	 */
	public void delete(Integer id);
	
	/**
	 * 保存记录
	 * 方法名：save<BR>
	 * 时间：2016年11月13日-下午11:14:30 <BR>
	 * @param t void<BR>
	 * @exception <BR>
	 * @since  1.0.0
	 */
	public void save(T t);
	
}
